import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { VantResolver } from '@vant/auto-import-resolver';
import postcssPxToViewport from 'postcss-px-to-viewport';

// https://vite.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    vueDevTools(),
    AutoImport({
      resolvers: [VantResolver()],
    }),
    Components({
      resolvers: [VantResolver()],
    })
  ],
  css: {
    postcss: {
      plugins: [
        postcssPxToViewport({
          unitToConvert: 'px', // 要转换的单位，默认为 px
          viewportWidth: 375, // 设计稿的视口宽度，适配移动端
          unitPrecision: 5, // 转换后的精度，移动端通常不需要太高的精度
          viewportUnit: 'vw', // 转换后的单位
          fontViewportUnit: 'vw', // 字体单位
          propList: ['*'], // 需要转换的属性列表，* 表示全部
          selectorBlackList: ['ignore-'], // 忽略的 CSS 选择器
          minPixelValue: 1, // 最小转换值
          mediaQuery: false, // 是否转换媒体查询中的单位
          replace: true, // 是否直接替换属性值
          exclude: [], // 忽略的文件或目录
          include: [], // 需要包含的文件或目录
          landscape: false // 是否处理横屏情况
        })
      ]
    }
  },
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    },
  },
})
